package language.monkey.token

enum class TokenType(typeStr: String) {
    ILLEGAL("ILLEGAL"), // 未知字符
    EOF("EOF"),

    // 标识符+字面量
    IDENT("IDENT"), // add, foobar, x, y, ...
    INT("INT"),

    // 运算符
    ASSIGN("="),
    PLUS("+"),
    MINUS("-"),
    BANG("!"),
    ASTERISK("*"),
    SLASH("/"),
    LT("<"),
    GT(">"),

    // 逻辑运算符
    EQ("=="),
    NOT_EQ("!="),

    // 分隔符
    COMMA(","),
    SEMICOLON(";"),

    // 括号
    LPAREN("("),
    RPAREN(")"),
    LBRACE("{"),
    RBRACE("}"),

    // 关键字
    FUNCTION("FUNCTION"),
    LET("LET"),
    TRUE("TRUE"),
    FALSE("FALSE"),
    IF("IF"),
    ELSE("ELSE"),
    RETURN("RETURN");
}